package com.mlizhi.modules.login;

import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.mlizhi.base.NetWorkManager;
import com.mlizhi.base.SecurityUtil;
import com.mlizhi.base.Session;
import com.mlizhi.kingdom.R;
import com.mlizhi.modules.spec.util.JsonUtil;
import com.mlizhi.utils.Constants;
import com.umeng.analytics.AnalyticsConfig;
import com.umeng.analytics.MobclickAgent;

/**
 */
public class UpdatePasswordActivity extends Activity {

	private Session mSession;
	private EditText newPasswordEditText,newRePasswordEditText;
	private Context mContext;
	private RequestQueue mRequestQueue;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mContext = this;
		setContentView(R.layout.activity_login_update_password);
		/** 发送策略定义了用户由统计分析SDK产生的数据发送回友盟服务器的频率。 */
		MobclickAgent.updateOnlineConfig( mContext );
		/** 设置是否对日志信息进行加密, 默认false(不加密). */
		AnalyticsConfig.enableEncrypt(true);
		mSession = Session.get(getApplicationContext());
		newPasswordEditText = (EditText) findViewById(R.id.user_update_new_password);
	    newRePasswordEditText = (EditText) findViewById(R.id.user_update_new_repassword);
	}
	
	 /**
     * 控制当前页面点击事件
     *
     * @param view
     */
    public void updateBack2Main(View view) {
        switch (view.getId()){
            case R.id.setting_update_item_password_back:
//                startActivity(new Intent(mContext,));
                finish();
                break;

            case R.id.user_update_new_password_submit:
            	updatePassword();
            	MobclickAgent.onEvent(mContext,"updatePassword");
                break;
        }


    }
    
    private String newPassword = "";
    private String newRePassword = "";
    private void updatePassword() {
        newPassword = newPasswordEditText.getText().toString();
        newRePassword = newRePasswordEditText.getText().toString();
        if("".equals(newPassword)||null == newPassword){
            Toast.makeText(mContext,R.string.user_password_null,Toast.LENGTH_SHORT).show();
            return;
        }
        if(!newPassword.equals(newRePassword)){
            Toast.makeText(mContext,R.string.user_reset_password_twice_not_same,Toast.LENGTH_SHORT).show();
            return;
        }

        boolean netUsable = NetWorkManager.getNewInstance().isNetworkConnected(mContext);
        if (netUsable) {
            mRequestQueue = Volley.newRequestQueue(getApplicationContext());
            // Request a string response from the provided URL.
            StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.URL_POST_UPDATE_PASSWORD_URL,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            String code = JsonUtil.getHeaderCode(response);
                            if(Constants.RESULT_JSON_HEADER_CODE_SUCCESS.equals(code)){
                            	Toast.makeText(mContext, "密码修改成功！", Toast.LENGTH_SHORT).show();
                                mSession.setPassword(newPassword);
                                UpdatePasswordActivity.this.finish();
                            }else {
                                Toast.makeText(mContext, JsonUtil.getHeaderErrorInfo(response), Toast.LENGTH_SHORT).show();
                            }
                        }
                    }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(mContext,error.getMessage(),Toast.LENGTH_SHORT).show();
                }
            }){
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    String timestamp = SecurityUtil.getTimestamp();
                    Map<String, String>  params = new HashMap<String, String>();
                    params.put("password", newPassword);
                    params.put("oldPassword", mSession.getPassword());
                    params.put("companyId", Constants.COMPANY_ID);
                    params.put("mobile",  mSession.getAccount());
                    params.put(Constants.URL_TIMESTAMP,timestamp );
                    params.put(Constants.URL_KEY,SecurityUtil.getMd5String(timestamp));
                    return params;
                }
            };
            mRequestQueue.add(stringRequest);
            mRequestQueue.start();
        }else {
            Toast.makeText(mContext,R.string.net_connected_failure,Toast.LENGTH_SHORT).show();
        }
        return ;
    }

    @Override
	public void onResume() {
		super.onResume();
		MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用，不需要单独写)
	    MobclickAgent.onResume(this);          //统计时长
	}

	@Override
	public void onPause() {
		super.onPause();
		MobclickAgent.onPageEnd("SplashScreen"); // （仅有Activity的应用中SDK自动调用，不需要单独写）保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息 
		MobclickAgent.onPause(this);
	}
	

}